package com.example.model;

import com.example.enums.ResultStatus;
import lombok.Data;
import org.springframework.web.util.pattern.PathPattern;

/**
 * Description:统一结果返回实体类
 * User: 阿宾
 * Date: 2025-05-13
 * Time: 20:17
 */
@Data
public class Result<T> {
    //业务状态码 200：业务处理成功  -1：业务处理失败  -2：未登录
    //private int code;
    //对于可以枚举出来的，可以使用枚举类
    private ResultStatus code;
    //错误信息，成功返回空
    private String errMsg;
    //接口响应的数据
    private T data;

    //业务成功时返回方法
    public static <T> Result success(T data){
        Result result = new Result();
        result.setCode(ResultStatus.SUCCESS);
        result.setErrMsg("");
        result.setData(data);
        return result;
    }
    //业务失败时返回方法
    public static <T> Result fail(String errMsg){
        Result result = new Result();
        result.setCode(ResultStatus.FAIL);
        result.setErrMsg(errMsg);
        result.setData(null);
        return result;
    }
    //业务未登录时返回方法
    public static <T> Result nologin(){
        Result result = new Result();
        result.setCode(ResultStatus.NOLOGIN);
        result.setErrMsg("未登录");
        result.setData(null);
        return result;
    }
}
